The present invention relates in general to the field of virtualization, and in particular to a method for creating a virtual appliance and a system for creating a virtual appliance. Still more particularly, the present invention relates to a mechanism for creating a virtual appliance.
While virtualization brought a lot of advantages in terms of optimization of resource utilization, it also introduced new challenges. One of the new issues is how to guarantee portability of virtual system images between the various hypervisors and their associated management tools. So far, this has been a relatively minor concern in the market because most “cloud computing” solutions seem to leverage a single vendor for the underlying infrastructure. This has held true for projects in the enterprise data center and for the pure cloud solutions that leverage a service like the Elastic Compute Cloud at Amazon. In this context, some see image portability much like they viewed application portability: nice to have, but not essential as long as the cloud vendor maintains support for legacy deployments. Recently, we have seen a potential shift start to occur. Increasing numbers of “cloud as a service” vendors want to supply some portion of the private data center infrastructure in the cloud or, more challenging, move virtual images across hybrid clouds services.
Existing image building and composition tools, for example ICON and CohesiveFT, are able to create virtual images, but these images are limited to one single image format, for example VMDK, and for the moment, there is no easy way to have this images working on other hypervisors or physical machines due to image portability issues. So far, the most common way to move a virtual appliance on a different target platform is to rebuild the images on top of the new infrastructure reproducing the same steps required to build and compose the original image. This will result that an operating system (OS) image is selected and build on a target machine. Then the operating system (OS) image is installed, and software bundles are installed on top of the base operating system (OS) image. Finally, the target machine is captured.
The above approach requires extra effort to build and/or compose the virtual appliance varying the target platform. Also, additional tests are required to certify the new composed image. Further, image sprawl and/or proliferation of images may change the target platform type and the virtual or physical target machine model, and the source image has to be introspected to understand the middleware and/or software stack.
The traditional way to move workload, across heterogeneous platforms is described in the Patent Application Publication U.S. 2011/0197053 A1, “SIMPLIFYING MANAGEMENT OF PHYSICAL AND VIRTUAL DEPLOYMENTS,” by Yan et al., for example. The published, patent application discloses a method of deploying a virtual image to a target physical machine by making use of a pre-installation environment attached to the target system, wherein the pre-installation environment is booted up and the virtual image is retrieved over a network, and the virtual image content are extracted after booting into the pre-installation environment. Thereafter, modifications and adjustments are made by correlating the machine specific data of the virtual image with the hardware of the target system.